package MyString;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 1233. 删除子文件夹
 *
 * 你是一位系统管理员，手里有一份文件夹列表 folder，你的任务是要删除该列表中的所有 子文件夹，并以 任意顺序 返回剩下的文件夹。
 *
 * 我们这样定义「子文件夹」：
 *
 *     如果文件夹 folder[i] 位于另一个文件夹 folder[j] 下，那么 folder[i] 就是 folder[j] 的子文件夹。
 *
 * 文件夹的「路径」是由一个或多个按以下格式串联形成的字符串：
 *
 *     / 后跟一个或者多个小写英文字母。
 *
 * 例如，/leetcode 和 /leetcode/problems 都是有效的路径，而空字符串和 / 不是。
 */

public class leetcode1233 {
    public static List<String> removeSubfolders(String[] folder) {
        List<String> res = new ArrayList<>();
        //先排序
        Arrays.sort(folder);
        for(String item : folder){
            System.out.println(item);
        }
        System.out.println();
        res.add(folder[0]);

        for(int i=1; i<folder.length; i++){
            String father = res.get(res.size()-1);
            // 不是以father开头直接add进去
            if(!folder[i].startsWith(father + "/")){
                res.add(folder[i]);
                System.out.println(folder[i]);
            }
        }
        return res;
    }

    public static void main(String[] args) {
        String[] folder = new String[]{"/a/b/b/a", "/d/d", "/d/f", "/f/d", "/a/d","/a/d/c", "/b/a"};
        removeSubfolders(folder);
    }
}
